Hi Dai Gei Ho~ 我是Winnie~ 延續上篇沒有說完的內容,今天我們要來看看 Vite Config 常見配置。
首先我們先可以打開專案根目錄中的 vite.config.js,初始的配置會如以下:
// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue' // 如剛開始時建造專案選擇vue,才會有此行
export default defineConfig({
  plugins: [
    vue() 
  ]
})
接下來,我們依照 開發模式 與 打包模式 兩個情境模式來分類常見配置介紹,
alias 路徑別名 用來表示檔案的路徑,當今天檔案路徑階層很多就可以透過別名來避免寫錯的問題。
設置如下:
// vite.config.js
const { resolve } = require('path');
export default defineConfig({
  // 略 ...
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src'),
    }
  },
}
結果如下:
// main.js
import Header from "/@/components/Header.vue";
另外如果想將圖片的src路徑使用別名來呈現,需注意的是,如使用 常規的path.resolve來引入圖片,會造成圖片顯示錯誤,因為引入圖片的alias開頭需使用/,同時使用字串來引入。
配置如下:
//vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
    base: './',
    plugins: [vue()],
    resolve: {
        alias: {
             '/images': 'src/assets/images',
        },
    },
})
引入方式:
//app.vue
<template>
    <img src="/images/logo.png" alt="">
</template>
當我們要讓 全局都可以引用base.scss ,需在config中進行設置,範例如下:
export default defineConfig({
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@import "@/styles/base.scss";`
      }
    }
  }
})
ps 需注意這只適用於開發階段
身為前端工程師,相信大家最常遇到的就是要 Call API 時遇到跨domain 的問題了,如果今天在開發階段,我們可以透過 proxy代理的設定,來解決此問題。
設置方法如下:
export default defineConfig({
  server: {
    proxy: {
      // 字串寫法
      '/foo': 'http://localhost:4567',
      // 選項寫法
      '/api': {
        target: 'http://jsonplaceholder.typicode.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      },
      // 正則寫法
      '^/fallback/.*': {
        target: 'http://jsonplaceholder.typicode.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/fallback/, '')
      },
    }
  }
})
當我們今天有多頁面需要打包,此時 規定配置如下:
  build: {
    rollupOptions: {
      input: {
        main: resolve(__dirname, 'index.html'),
        arcticle: resolve(__dirname, 'arcticle/index.html')
      }
    }
  },
當我們在 build檔案 的時候,Vite 會在 打包出來的檔名預設會幫你加上檔名的一個 hash,是意圖如下:

但如果今天我們想要保留原檔名想要取消檔名的hash時,配置如下:
  build: {
    rollupOptions: {
        output: {
          entryFileNames: `assets/[name].js`,
          chunkFileNames: `assets/[name].js`,
          assetFileNames: `assets/[name].[ext]`
        }
  },
以上就是今天針對 Vite config 常見配置的介紹,如果還有更多想了解設定,大家可以到  文件 仔細品嚐,同時在這邊也歡迎大家一起分享交流自己覺得Vite好用的config配置。(留言分享按讚 開啟小鈴鐺~不知道為何突然想說這句XD),
最後,截止至今天的文章,關於 vite 不專業的講解的系列文 可能差不多要先到這邊了,在接下來文章主題中 會開始 介紹 Vue3 Composition API ,而有別於前面11篇的較多在 原理的講解,下半段文章主要 會著重於 Vue3 Composition API 實際應用,再請各位客官們多多指教了,謝謝大家。
不好意思,想請問路徑別名設定的地方,在vite文件的哪邊?我看文件看了好久都沒有找到。
 resolve: {
    alias: {
      '@': resolve(__dirname, 'src'),
    }
  },